import router from './router'
import { getCookie } from "~/api/util/auth"
import { showFullLoading,hideFullLoading } from "~/api/util/fullloading"
import { toast } from "~/api/util/notice"
import store from './store'


// 全局前置路由守卫(也就是在路由跳转前触发)
//  参数分别表示：to 表示目标路径   from 表示当前路径  next放行至指定路径
router.beforeEach(async(to, from, next) => {
    //路由跳转前，开启全屏加载
    showFullLoading()
    //先获取cookie
    const token = getCookie()
    //判断cookie中是否有token,且获取下一个目标路径是否为需要登入页面
    if(!token && to.path !== '/login'){
        toast('请先登入','warning')
        console.log("跳转到登录页")
        return next({path: '/login'})
    }
    //如果cookie中的token有值，且获取下一个目标路径为登录页面，则跳转到首页
    if(getCookie() && to.path == '/login'){
        toast('请先退出登入','warning')
        console.log("跳转到首页",token)
        return next({path : '/'})
    }

    // 如果用户登录了，就自动获取用户信息，并储存在vuex中
    if(token){
        // await 启动异步执行
        console.log("异步执行获取用户信息")
       await store.dispatch("getinfo")
    }
    hideFullLoading()
    next()
  })